1. Field of the Invention
This invention relates to logic which responds to data in a predetermined priority. More specifically, this invention relates to logic for a priority controller with more than one category of requesters which has a different response to each.
2. Description of the Prior Art
The increase in logic density provided by increasing chip density has resulted in a relatively limited number of pins being available for subsystem communication. This problem has been addressed by using a single communication channel between subsystems. The use of a single communication channel for system communication, while reducing the number of pins required for communication, results in competition between the subsystems for access to the single communication channel. This requires a priority scheme to arbitrate access to the single communication channel between the various subsystems.
A common priority scheme for a single communication channel having a number of requesters is a first-in first-out (FIFO) arrangement. In a FIFO arrangement the priority scheme merely responds to the requesters in the order of their request for channel use. When two requesters request priority simultaneously this results in a priority problem.
Another common priority scheme uses different levels of priority for each requester from a highest level to successively lower level for all of the requesters in use. Under this arrangement access to the channel is granted to the requester having the highest level priority. Here, when two requesters request channel use, the requester with the lowest priority is forced to wait until the higher level priority requester is finished. While this solves a simultaneous request problem, under some conditions this can result in a lower level priority requester being locked out, i.e., never being granted access, because there is always the possibility that a higher priority requester may always interrupt a request of the lower level priority requester before the lower level request can be acted upon.
Another common priority scheme uses a "snapshot" priority arrangement. The request status of all current requesters at an instant of time is called a "snapshot" of the current requester status. A snapshot scheme also uses different levels of priorities for each requester, as above, but instead of permitting later requests to preempt a current lower level requester, all requests noted in a snapshot are honored before any later requests are acted upon. Only after all of the requests in the current snapshot have been responded to is a later snapshot taken. This ensures that no low level requester can be locked out of the system.
A representative single channel communication application is using a single communication channel to interconnect a number of third level main memory cards with second level cache cards. This results in data being sent over the single channel being routed through intermediate memory cards to a selected second level cache card. Here, whenever the communication channel is free, the data can be sent immediately to the next memory card, however, when the channel is busy, data received by the intermediate memory card must be stored on the card until the channel is again free.
The FIFO system, described above, is not suitable for this cache problem because of the possibility of simultaneous requests, since the data is typically asynchronous. The prioritized scheme, described above, could handle simultaneous requests, but could lock-out data if higher priority requests always occurred before any lower priority requests could be serviced. If the FIFO scheme were combined with the priority scheme, the lock-out problem would be solved, but lower priority requests would be serviced infrequently which could degrade system performance. The snapshot priority scheme also solves a lock-out problem, but still does not solve the problem of providing priorities which will transmit data efficiently to a destination channel from a remote memory card and a local memory card to a destination card over a single communication channel.
A desirable priority scheme for a system which transfers data over a single channel from a source memory card through intermediate memory cards to a destination card is one that provides equal priority to the transmission of data from an external memory card to the transmission of data located on the memory card itself. When two memory banks are provided on the memory card for data, this would require twice the access for remote data to the single communication channel. This would ensure that the transmission of data from a remote card over a single communication channel would not be delayed excessively.